const koajwt = require('koa-jwt') // jwt鉴权

const error = () => {
	return async (ctx, next) => {
		try {
			await next();
			console.log("成功", ctx.status);
			switch (ctx.status) {
				case 200:
					ctx.res.success();
					break
				case 401:
					ctx.res.fail({ code: ctx.status, msg: "token不存在" });
					break
				case 404:
					if (ctx.msg) {
						ctx.res.success(1)
					} else {
						ctx.res.fail({ code: ctx.status, msg: "404" });
					}
			}
		} catch (err) {
			console.log("错误：", err.status);
			if (err.code) {
				// 自己主动抛出的错误
				ctx.res.fail({ code: err.code, msg: err.message });
			} else {
				// 程序运行时的错误
				ctx.app.emit('error', err, ctx);
			}
			if (err.status === 401) {
				if (err.name == 'TokenExpiredError') {
					// ctx.body = new LoginError('认证已超时，请重新登录');
					ctx.res.fail({ code: err.status, msg: '认证已超时，请重新登录' });
				} else {
					// ctx.body = new LoginError('请先登录');
					ctx.res.fail({ code: err.status, msg: '请先登录' });
				}
			}
		}
	};
};

module.exports = error;
